<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Class template abstract_ordering</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Log v2">
<link rel="up" href="../../utilities.html#header.boost.log.utility.record_ordering_hpp" title="Header &lt;boost/log/utility/record_ordering.hpp&gt;">
<link rel="prev" href="../../BOOST_LOG_ONCE_BLOCK.html" title="Macro BOOST_LOG_ONCE_BLOCK">
<link rel="next" href="attribute_value_ordering.html" title="Class template attribute_value_ordering">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../../BOOST_LOG_ONCE_BLOCK.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../utilities.html#header.boost.log.utility.record_ordering_hpp"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="attribute_value_ordering.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="refentry">
<a name="boost.log.abstract_ordering"></a><div class="titlepage"></div>
<div class="refnamediv">
<h2><span class="refentrytitle">Class template abstract_ordering</span></h2>
<p>boost::log::abstract_ordering &#8212; Ordering predicate, based on opaque pointers to the record view implementation data. </p>
</div>
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: &lt;<a class="link" href="../../utilities.html#header.boost.log.utility.record_ordering_hpp" title="Header &lt;boost/log/utility/record_ordering.hpp&gt;">boost/log/utility/record_ordering.hpp</a>&gt;

</span><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> FunT <span class="special">=</span> <a class="link" href="less.html" title="Struct less">less</a><span class="special">&gt;</span> 
<span class="keyword">class</span> <a class="link" href="abstract_ordering.html" title="Class template abstract_ordering">abstract_ordering</a> <span class="special">:</span> <span class="keyword">private</span> <span class="identifier">FunT</span> <span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
  <span class="comment">// types</span>
  <span class="keyword">typedef</span> <span class="keyword">bool</span> <a name="boost.log.abstract_ordering.result_type"></a><span class="identifier">result_type</span><span class="special">;</span>  <span class="comment">// Result type. </span>

  <span class="comment">// <a class="link" href="abstract_ordering.html#boost.log.abstract_orderingconstruct-copy-destruct">construct/copy/destruct</a></span>
  <a class="link" href="abstract_ordering.html#idp39161856-bb"><span class="identifier">abstract_ordering</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
  <span class="keyword">explicit</span> <a class="link" href="abstract_ordering.html#idp39163040-bb"><span class="identifier">abstract_ordering</span></a><span class="special">(</span><span class="identifier">FunT</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>

  <span class="comment">// <a class="link" href="abstract_ordering.html#idp39158224-bb">public member functions</a></span>
  <span class="identifier">result_type</span> <a class="link" href="abstract_ordering.html#idp39158784-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="identifier">record_view</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">record_view</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
<span class="special">}</span><span class="special">;</span></pre></div>
<div class="refsect1">
<a name="idp146968368"></a><h2>Description</h2>
<p>Since record views only refer to a shared implementation data, this predicate is able to order the views by comparing the pointers to the data. Therefore two views are considered to be equivalent if they refer to the same implementation data. Otherwise it is not specified whether one record is ordered before the other until the predicate is applied. Note that the ordering may change every time the application runs.</p>
<p>This kind of ordering may be useful if log records are to be stored in an associative container with as least performance overhead as possible, when the particular order is not important.</p>
<p>The <code class="computeroutput">FunT</code> template argument is the predicate that is used to actually compare pointers. It should be able to compare <code class="computeroutput">const void*</code> pointers. The compared pointers may refer to distinct memory regions, the pointers must not be interpreted in any way. </p>
<div class="refsect2">
<a name="idp146971872"></a><h3>
<a name="boost.log.abstract_orderingconstruct-copy-destruct"></a><code class="computeroutput">abstract_ordering</code> 
        public
       construct/copy/destruct</h3>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
<pre class="literallayout"><a name="idp39161856-bb"></a><span class="identifier">abstract_ordering</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
<p>Default constructor. Requires <code class="computeroutput">FunT</code> to be default constructible. </p>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">explicit</span> <a name="idp39163040-bb"></a><span class="identifier">abstract_ordering</span><span class="special">(</span><span class="identifier">FunT</span> <span class="keyword">const</span> <span class="special">&amp;</span> fun<span class="special">)</span><span class="special">;</span></pre>
<p>Initializing constructor. Constructs <code class="computeroutput">FunT</code> instance as a copy of the <span class="emphasis"><em>fun</em></span> argument. </p>
</li>
</ol></div>
</div>
<div class="refsect2">
<a name="idp146986656"></a><h3>
<a name="idp39158224-bb"></a><code class="computeroutput">abstract_ordering</code> public member functions</h3>
<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
<pre class="literallayout"><span class="identifier">result_type</span> <a name="idp39158784-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="identifier">record_view</span> <span class="keyword">const</span> <span class="special">&amp;</span> left<span class="special">,</span> <span class="identifier">record_view</span> <span class="keyword">const</span> <span class="special">&amp;</span> right<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
<p>Ordering operator </p>
</li></ol></div>
</div>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2007-2014 Andrey Semashev<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>).
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../../BOOST_LOG_ONCE_BLOCK.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../utilities.html#header.boost.log.utility.record_ordering_hpp"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="attribute_value_ordering.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
